<?php

/*
 * Created on 
 * <Nombre del archivo: p> *
 * <Versión del archivo: 1.0>
 * <Autor del archivo: Milagros Negrín>
 * <Breve explicación del contenido de el archivo:
 *
 */
session_start();

require_once('../../modelo/baseDatos.Class.php');

class reporte { //Concepto

    private $Concepto;
    private $Denominacion;
    private $TipoConcepto;
//Dependencias
    private $Id_Depe;
    private $Id_DepeActual;
    private $Descripcion;
    private $Status;
    private $Id_Orga;
    private $Direccion;
    private $Tlf;
    private $usu;
//Direcciones
    private $Id_Dire;
    private $Id_DireActual;
    private $DescripcionDire;
//Unidades
    private $Id_Unidad;
    private $Id_UnidadActual;
    private $DescripcionUnidad;
//Coordniacion
    private $Id_Coor;
    private $Id_CoorActual;
    private $DescripcionCoor;
//producto
    private $Id_Prod;
    private $NombreProd;
    private $DescripcionProd;
//proveedor
    private $RifTipo;
    private $RifId;
    private $DenominacionPro;
    private $DireccionPro;
    private $tlfPro;
    private $statusPro;
//Subgrupo
    private $CodigoSubGrupo;
    private $NombreSubGrupo;
    private $CodigoGrupo;
// VARIABLES MANTENIMIENTO - CLASIFICACION DE BIENES - SECCION //
    private $CodigoSeccion;
    private $NombreSeccion;


    /* arreglos */
//arrglos conceptos
    private $arrConcepto = array();
    private $arrDenominacion = array();
    private $arrTipoConcepto = array();
//arreglos Dependencias
    private $arrId_Depe = array();
    private $arrDescripcion = array();
    private $arrStatus = array();
    private $arrId_Orga = array();
    private $arrDireccion = array();
    private $arrTlf = array();
    private $arrUsu = array();
//arreglos Direcciones
    private $arrId_Dire = array();
    private $arrDescripcionDire = array();
//arreglos Unidades
    private $arrId_Unidad = array();
    private $arrDescripcionUnidad = array();
//arreglos Coordiacion
    private $arrId_Prod = array();
    private $arrNombreProd = array();
    private $arrDescripcionProd = array();
//arreglos Activos reales
    private $arrId_Coor = array();
    private $arrDescripcionCoor = array();
//arreglos Proveedor
    private $arrRifTipo = array();
    private $arrRifId = array();
    private $arrDenominacionPro = array();
    private $arrDireccionPro = array();
    private $arrTlfPro = array();
    private $arrStatusPro = array();

    /* ARREGLOS DE SUBGRUPOS */
    private $arrCodigoSubGrupo = array();
    private $arrNombreSubGrupo = array();
    private $arrCodigoGrupo = array();
    private $arrResultadoSubGrupo = array();
    /* FIN ARREGLOS DE SUBGRUPOS */

    /* ARREGLOS DE SECCION */
    private $arrCodigoSeccion = array();
    private $arrNombreSeccion = array();
    protected $db;

    public function __construct(Base $db) {
        $this->db = $db;
    }

    /*     * *******************SET ARRAY******************** */

    public function setArrConcepto($arrConcepto) {
        array_push($this->arrConcepto, $arrConcepto);
    }

    public function setArrDenominacion($arrDenominacion) {
        array_push($this->arrDenominacion, $arrDenominacion);
    }

    public function setArrTipoConcepto($arrTipoConcepto) {
        array_push($this->arrTipoConcepto, $arrTipoConcepto);
    }

    public function setArrId_Depe($arrId_Depe) {
        array_push($this->arrId_Depe, $arrId_Depe);
    }

    public function setArrDescripcion($arrDescripcion) {
        array_push($this->arrDescripcion, $arrDescripcion);
    }

    public function setArrStatus($arrStatus) {
        array_push($this->arrStatus, $arrStatus);
    }

    public function setArrId_Orga($arrId_Orga) {
        array_push($this->arrId_Orga, $arrId_Orga);
    }

    public function setArrId_Dire($arrId_Dire) {
        array_push($this->arrId_Dire, $arrId_Dire);
    }

    public function setArrDescripcionDire($arrDescripcionDire) {
        array_push($this->arrDescripcionDire, $arrDescripcionDire);
    }

    public function setArrId_Unidad($arrId_Unidad) {
        array_push($this->arrId_Unidad, $arrId_Unidad);
    }

    public function setArrDescripcionUnidad($arrDescripcionUnidad) {
        array_push($this->arrDescripcionUnidad, $arrDescripcionUnidad);
    }

    public function setArrId_Coor($arrId_Coor) {
        array_push($this->arrId_Coor, $arrId_Coor);
    }

    public function setArrDescripcionCoor($arrDescripcionCoor) {
        array_push($this->arrDescripcionCoor, $arrDescripcionCoor);
    }

    public function setArrId_Prod($arrId_Prod) {
        array_push($this->arrId_Prod, $arrId_Prod);
    }

    public function setArrNombreProd($arrNombreProd) {
        array_push($this->arrNombreProd, $arrNombreProd);
    }

    public function setArrDescripcionProd($arrDescripcionProd) {
        array_push($this->arrDescripcionProd, $arrDescripcionProd);
    }

    public function setArrRifTipo($arrRifTipo) {
        array_push($this->arrRifTipo, $arrRifTipo);
    }

    public function setArrRifId($arrRifId) {
        array_push($this->arrRifId, $arrRifId);
    }

    public function setArrDenominacionPro($arrDenominacionPro) {
        array_push($this->arrDenominacionPro, $arrDenominacionPro);
    }

    public function setArrDireccionPro($arrDireccionPro) {
        array_push($this->arrDireccionPro, $arrDireccionPro);
    }

    public function setArrTlfPro($arrTlfPro) {
        array_push($this->arrTlfPro, $arrTlfPro);
    }

    public function setArrStatusPro($arrStatusPro) {
        array_push($this->arrStatusPro, $arrStatusPro);
    }

    public function setArrCodigoSubGrupo($arrCodigoSubGrupo) {
        array_push($this->arrCodigoSubGrupo, $arrCodigoSubGrupo);
    }

    public function setArrNombreSubGrupo($arrNombreSubGrupo) {
        array_push($this->arrNombreSubGrupo, $arrNombreSubGrupo);
    }

    public function setArrCodigoGrupo($arrCodigoGrupo) {
        array_push($this->arrCodigoGrupo, $arrCodigoGrupo);
    }

    public function setArrResultadoSubGrupo($arrResultadoSubGrupo) {
        array_push($this->arrResultadoSubGrupo, $arrResultadoSubGrupo);
    }

    public function setArrCodigoSeccion($arrCodigoSeccion) {
        array_push($this->arrCodigoSeccion, $arrCodigoSeccion);
    }

    public function setArrNombreSeccion($arrNombreSeccion) {
        array_push($this->arrNombreSeccion, $arrNombreSeccion);
    }

    /*     * *******************GET ARRAY******************** */

    public function getArrConcepto() {
        return $this->arrConcepto;
    }

    public function getArrDenominacion() {
        return $this->arrDenominacion;
    }

    public function getArrTipoConcepto() {
        return $this->arrTipoConcepto;
    }

    public function getArrId_Depe() {
        return $this->arrId_Depe;
    }

    public function getArrDescripcion() {
        return $this->arrDescripcion;
    }

    public function getArrStatus() {
        return $this->arrStatus;
    }

    public function getArrId_Orga() {
        return $this->arrId_Orga;
    }

    public function getArrDireccion() {
        return $this->arrDireccion;
    }

    public function getArrTlf() {
        return $this->arrTlf;
    }

    public function getArrId_Dire() {
        return $this->arrId_Dire;
    }

    public function getArrDescripcionDire() {
        return $this->arrDescripcionDire;
    }

    public function getArrId_Unidad() {
        return $this->arrId_Unidad;
    }

    public function getArrDescripcionUnidad() {
        return $this->arrDescripcionUnidad;
    }

    public function getArrId_Coor() {
        return $this->arrId_Coor;
    }

    public function getArrDescripcionCoor() {
        return $this->arrDescripcionCoor;
    }

    public function getArrId_Prod() {
        return $this->arrId_Prod;
    }

    public function getArrNombreProd() {
        return $this->arrNombreProd;
    }

    public function getArrDescripcionProd() {
        return $this->arrDescripcionProd;
    }

    public function getArrRifTipo() {
        return $this->arrRifTipo;
    }

    public function getArrRifId() {
        return $this->arrRifId;
    }

    public function getArrDenominacionPro() {
        return $this->arrDenominacionPro;
    }

    public function getArrDireccionPro() {
        return $this->arrDireccionPro;
    }

    public function getArrTlfPro() {
        return $this->arrTlfPro;
    }

    public function getArrStatusPro() {
        return $this->arrStatusPro;
    }

    public function getArrCodigoSubGrupo() {
        return $this->arrCodigoSubGrupo;
    }

    public function getArrNombreSubGrupo() {
        return $this->arrNombreSubGrupo;
    }

    public function getArrResultadoSubGrupo() {
        return $this->arrResultadoSubGrupo;
    }

    public function getArrCodigoSeccion() {
        return $this->arrCodigoSeccion;
    }

    public function getArrNombreSeccion() {
        return $this->arrNombreSeccion;
    }

    /*     * *******************SET******************** */

    public function setConcepto($Concepto) {
        $this->Concepto = $Concepto;
    }

    public function setDenominacion($Denominacion) {
        $this->Denominacion = $Denominacion;
    }

    public function setTipoConcepto($TipoConcepto) {
        $this->TipoConcepto = $TipoConcepto;
    }

    public function setId_Depe($Id_Depe) {
        $this->Id_Depe = $Id_Depe;
    }

    public function setId_DepeActual($Id_DepeActual) {
        $this->Id_DepeActual = $Id_DepeActual;
    }

    public function setDescripcion($Descripcion) {
        $this->Descripcion = $Descripcion;
    }

    public function setStatus($Status) {
        $this->Status = $Status;
    }

    public function setId_Orga($Id_Orga) {
        $this->Id_Orga = $Id_Orga;
    }

    public function setDireccion($Direccion) {
        $this->Direccion = $Direccion;
    }

    public function setTlf($Tlf) {
        $this->Tlf = $Tlf;
    }

    public function setusuario($usuario) {
        $this->usu = $usuario;
    }

    public function setId_Dire($Id_Dire) {
        $this->Id_Dire = $Id_Dire;
    }

    public function setId_DireActual($Id_DireActual) {
        $this->Id_DireActual = $Id_DireActual;
    }

    public function setDescripcionDire($DescripcionDire) {
        $this->DescripcionDire = $DescripcionDire;
    }

    public function setId_Unidad($Id_Unidad) {
        $this->Id_Unidad = $Id_Unidad;
    }

    public function setId_UnidadActual($Id_UnidadActual) {
        $this->Id_UnidadActual = $Id_UnidadActual;
    }

    public function setDescripcionUnidad($DescripcionUnidad) {
        $this->DescripcionUnidad = $DescripcionUnidad;
    }

    public function setId_Coor($Id_Coor) {
        $this->Id_Coor = $Id_Coor;
    }

    public function setId_CoorActual($Id_CoorActual) {
        $this->Id_CooActualr = $Id_CoorActual;
    }

    public function setDescripcionCoor($DescripcionCoor) {
        $this->DescripcionCoor = $DescripcionCoor;
    }

    public function setId_Prod($Id_Prod) {
        $this->Id_Prod = $Id_Prod;
    }

    public function setNombreProd($NombreProd) {
        $this->NombreProd = $NombreProd;
    }

    public function setDescripcionProd($DescripcionProd) {
        $this->DescripcionProd = $DescripcionProd;
    }

    public function setRifTipo($RifTipo) {
        $this->RifTipo = $RifTipo;
    }

    public function setRifId($RifId) {
        $this->RifId = $RifId;
    }

    public function setDenominacionPro($DenominacionPro) {
        $this->DenominacionPro = $DenominacionPro;
    }

    public function setDireccionPro($DireccionPro) {
        $this->DireccionPro = $DireccionPro;
    }

    public function setTlfPro($TlfPro) {
        $this->TlfPro = $TlfPro;
    }

    public function setStatusPro($StatusPro) {
        $this->StatusPro = $StatusPro;
    }

    public function setCodigoSubGrupo($CodigoSubGrupo) {
        $this->CodigoSubGrupo = $CodigoSubGrupo;
    }

    public function setNombreSubGrupo($NombreSubGrupo) {
        $this->NombreSubGrupo = $NombreSubGrupo;
    }

    public function setCodigoGrupo($CodigoGrupo) {
        $this->CodigoGrupo = $CodigoGrupo;
    }

    public function setCodigoSeccion($CodigoSeccion) {
        $this->CodigoSeccion = $CodigoSeccion;
    }

    public function setNombreSeccion($NombreSeccion) {
        $this->NombreSeccion = $NombreSeccion;
    }

    /*     * **********Get************** */

    public function getConcepto() {
        return $this->Concepto;
    }

    public function getDenominacion() {
        return $this->Denominacion;
    }

    public function getTipoConcepto() {
        return $this->TipoConcepto;
    }

    public function getId_Depe() {
        return $this->Id_Depe;
    }

    public function getId_DepeActual() {
        return $this->Id_DepeActual;
    }

    public function getDescripcion() {
        return $this->Descripcion;
    }

    public function getStatus() {
        return $this->Status;
    }

    public function getId_Orga() {
        return $this->Id_Orga;
    }

    public function getDireccion() {
        return $this->Direccion;
    }

    public function getTlf() {
        return $this->Tlf;
    }

    public function getUsu() {
        return $this->usu;
    }

//Metodos Get direcciones
    public function getId_Dire() {
        return $this->Id_Dire;
    }

    public function getId_DireActual() {
        return $this->Id_DireActual;
    }

    public function getDescripcionDire() {
        return $this->DescripcionDire;
    }

//Metodos Get Unidad
    public function getId_Unidad() {
        return $this->Id_Unidad;
    }

    public function getId_UnidadActual() {
        return $this->Id_UnidadActual;
    }

    public function getDescripcionUnidad() {
        return $this->DescripcionUnidad;
    }

//Metodos Get coordinacion
    public function getId_Coor() {
        return $this->Id_Coor;
    }

    public function getId_CoorActual() {
        return $this->Id_CoorActual;
    }

    public function getDescripcionCoor() {
        return $this->DescripcionCoor;
    }

//Metodos Get Producto
    public function getId_Prod() {
        return $this->Id_Prod;
    }

    public function getNombreProd() {
        return $this->NombreProd;
    }

    public function getDescripcionProd() {
        return $this->DescripcionProd;
    }

//Metodos Get proveedor
    public function getRifTipo() {
        return $this->RifTipo;
    }

    public function getRifId() {
        return $this->RifId;
    }

    public function getDenominacionPro() {
        return $this->DenominacionPro;
    }

    public function getDireccionPro() {
        return $this->DireccionPro;
    }

    public function getTlfPro() {
        return $this->TlfPro;
    }

    public function getStatusPro() {
        return $this->StatusPro;
    }

    public function getCodigoSubGrupo() {
        return $this->CodigoSubGrupo;
    }

    public function getNombreSubgrupo() {
        return $this->NombreSubGrupo;
    }

    public function getCodigoGrupo() {
        return $this->CodigoGrupo;
    }

    public function getCodigoSeccion() {
        return $this->CodigoSeccion;
    }

    public function getNombreSeccion() {
        return $this->NombreSeccion;
    }

    /* FIN METODOS GET DE VARIABLES SECCION */


    /*     * ******************************************** */
    /*               Funciones                     */
    /*     * ******************************************** */

    //Registro de Dependencia
    public function consultarOrga() {
        $stsFuncion = $this->db->EjecutarVista("fn_i_dependencia('" . $this->getId_depe() . "',
								 '" . $this->getDescripcion() . "',
								  " . $this->getStatus() . "')");
        if ($stsFuncion->fields['fn_i_dependencia'] == "t") {//Si se guarda el registro devuelve true
            return TRUE;
        } else {
            return FALSE;
        }
    }

//	Consultar usuario por organizacion
    public function ConsultarOrgUsu($usuario) {
        $arrResultado = $this->db->EjecutarQuery("SELECT id_orga FROM sch_sicobim.usuario WHERE nb_bd_usuario ='$usuario'");
        if ($arrResultado) {
            $this->setId_Orga($arrResultado->fields['id_orga']);
        } //Fin de while ( !$arrResultado->EOF )
        else {
            return $ERROR;
        } //Fin de if ($arrResultado->EOF)
    }

    public function ReporteInventario($org) {
        if ($this->getId_Dire())
            $AND = " AND  pl.id_dire = {$this->getId_Dire()}";
        if ($this->getId_Unidad())
            $AND .=" AND pl.id_unid = {$this->getId_Unidad()}";
        if ($this->getId_Coor() != 0)
            $AND .= " AND  pl.id_coor = {$this->getId_Coor()}";
  
        $consulta = $this->db->EjecutarQuery("
            SELECT  sg.id_subg,sg.descripcion,pl.id_dire,pl.id_coor,pl.id_plani,
            (SELECT (count(sgs.id_subg)||'-'||sum(inv.montobsf))
                    FROM
                            sch_sicobim.inventario inv,
                            sch_sicobim.sub_grupo sgs,
                            sch_sicobim.plani_movi pl,
                            sch_sicobim.movi_biene mb
                    WHERE 
                            inv.id_invi = mb.id_invi 
                    AND 
                            sgs.id_subg = inv.id_subg 
                    AND 
                            pl.id_plani = mb.id_plani
                    AND 
                            mb.status = true
                    AND 
                            pl.id_depe= " . $this->getId_Depe() . "


                    AND
                            pl.id_orga=$org
                    " . $AND . "        
                    AND 
                            sgs.id_subg = sg.id_subg
            ) AS cantidad

            FROM
                    sch_sicobim.inventario inv,
                    sch_sicobim.sub_grupo sg,
                    sch_sicobim.plani_movi pl,
                    sch_sicobim.movi_biene mb
            WHERE 
                    inv.id_invi = mb.id_invi 
            AND 
                    sg.id_subg = inv.id_subg 
            AND 
                    pl.id_plani = mb.id_plani
            AND 
                    mb.status = true
            AND 
                    pl.id_depe=pl.id_depe 
            AND 
                    pl.id_depe= " . $this->getId_Depe() . "
                        
            AND
                    pl.id_orga=$org
            " . $AND . " 
                

            GROUP BY sg.id_subg,sg.descripcion,pl.id_dire,pl.id_coor,pl.id_plani; 

            /* Suma De los SubGrupos */
        ");
        //print_r($consulta);
        if ($consulta->fields['id_subg'] != "") {
            while (!$consulta->EOF) {
                $this->setArrCodigoSubGrupo($consulta->fields['id_subg']);
                $this->setArrNombreSubGrupo($consulta->fields['descripcion']);
                $cadena = explode("-", $consulta->fields['cantidad']);
                $this->setArrRifId($cadena[0]);
                $this->setArrId_Prod($cadena[1]);    
                $consulta->MoveNext();
            }
            return TRUE;
        } else {
            return FALSE;
        }
        //print_r($consulta);
    }

// fin validarMovimientoTablaConsulta
}

?>
